package day12;
//try-catch-finally如果有return该如何执行
public class demo8 {
    public static void main(String[] args) {
        System.out.println("结果："+demo2());
    }
    public static int demo1(){
        int i=10;
        try{
            System.out.println("执行try");
            int j=i/0;
            return 10;
        }catch (Exception e){
            System.out.println("执行catch");
            return 20;
        }finally {
            System.out.println("执行finally");
            return 30;
        }
    }

    public static int demo2(){
        int i=10;
        try{
            System.out.println("执行try");
            return i;
            //先于finally执行，但是没有立即返回，保存临时副本
            //如果finally没有返回值，最后才返回这个临时副本
            //如果finally有返回值，则会替换掉之前的临时副本
        }catch (Exception e){
            System.out.println("执行catch");
            return 20;
        }finally {
            i+=10;
            System.out.println("执行finally:"+i);
            return i;
        }
    }
}
